package fun.ticsmyc.reflect;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Map;

/**
 * @author Ticsmyc
 * @package fun.ticsmyc.reflect
 * @date 2021-02-16 22:50
 */
public class MapToObject {
    /**
     *
     * @param beanClass ： 要创建的对象类型
     * @param map  ： 这个对象的属性
     * @return
     */
    public static Object mapToObject(Class<?> beanClass, Map<String, Object> map){
        if (map == null)
            return null;
        Object obj = null;
        try {
            obj = beanClass.newInstance();
            Field[] fields = obj.getClass().getDeclaredFields();
            for (Field field : fields) {
                int mod = field.getModifiers();
                if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
                    continue;
                }
                field.setAccessible(true);
                field.set(obj, map.get(field.getName()));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return obj;
    }

}
